﻿<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Тип' content='text/html; charset=utf-8'>
<title>Парсер встроенного языка</title>
<link rel='stylesheet' type='text/css' href='ast.css'>
</head>
<body>
<header>
<h1>Парсер встроенного языка</h1>
</header>
На данной странице находится быстрая справка.<br>
Руководство по парсеру находится в <a href='https://github.com/oscript-library/osparser/blob/master/book.md'>Книге Джедая</a>.<br>
<br>
Настоящим Джедаям рекомендуется смотреть исходный код.<br>
Только так можно достичь просветления.
<h2>Содержание</h2>
<ul>
<li><a href='#Примеры'>Примеры использования парсера</a></li>
<li><a href='#МинимальныйШаблон'>Минимальный шаблон плагина</a></li>
<li><a href='#ПолныйШаблон'>Полный шаблон плагина</a></li>
<li><a href='#Таблицы'>Таблицы</a></li>
	<ul>
	<li><a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	<li><a href='#ТаблицаОшибок'>ТаблицаОшибок</a></li>
	<li><a href='#ТаблицаЗамен'>ТаблицаЗамен</a></li>
	</ul>
<li><a href='#АСД'>Абстрактное синтаксическое дерево</a></li>
	<ul>
	<li><a href='#Объявления'>Объявления</a></li>
	<li><a href='#Выражения'>Выражения</a></li>
	<li><a href='#Операторы'>Операторы</a></li>
	<li><a href='#ИнструкцииПрепроцессора'>ИнструкцииПрепроцессора</a></li>
	<li><a href='#ВыраженияПрепроцессора'>ВыраженияПрепроцессора</a></li>
	<li><a href='#Прочее'>Прочее</a></li>
	</ul>
<li><a href='#Перечисления'>Перечисления</a></li>
	<ul>
	<li><a href='#Типы'>Типы</a></li>
	<li><a href='#Директивы'>Директивы</a></li>
	<li><a href='#Аннотации'>Аннотации</a></li>
	<li><a href='#СимволыПрепроцессора'>СимволыПрепроцессора</a></li>
	<li><a href='#Токены'>Токены</a></li>
	</ul>
</ul>
<h1 id='Примеры'>Примеры использования парсера</h1><br>
<pre>

#Использовать osparser
#Использовать "./plugins"

ПодключитьСценарий("..\..\src\ПарсерВстроенногоЯзыка\Ext\ObjectМодуль.bsl", "ПарсерВстроенногоЯзыка");
ПодключитьСценарий("..\plugins\ДетекторНеиспользуемыхПеременных\src\ДетекторНеиспользуемыхПеременных\Ext\ObjectМодуль.bsl", "ДетекторНеиспользуемыхПеременных");

ЧтениеТекста = Новый ЧтениеТекста("..\src\ПарсерВстроенногоЯзыка\Ext\ObjectМодуль.bsl");
Исходник = ЧтениеТекста.Прочитать();

Парсер = Новый ПарсерВстроенногоЯзыка;
Плагин = Новый ДетекторНеиспользуемыхПеременных;
Парсер.Пуск(Исходник, Плагин);

Отчет = Новый Массив;
Для Каждого Ошибка Из Парсер.ТаблицаОшибок() Цикл
	Отчет.Добавить(Ошибка.Текст);
	Отчет.Добавить(СтрШаблон(" [стр: %1; кол: %2]", Ошибка.НомерСтрокиНачала, Ошибка.НомерКолонкиНачала));
	Отчет.Добавить(Символы.ПС);
КонецЦикла;
Сообщить(СтрСоединить(Отчет));

</pre>
<h1 id='МинимальныйШаблон'>Минимальный шаблон плагина</h1>
<pre>

Перем Результат;

// Будет вызвана один раз перед обходом AST.
// Тут можно получить необходимые перечисления и таблицы из парсера,
// и выполнить инициализацию плагина с учетом полученных параметров.
Процедура Открыть(Парсер, Параметры) Экспорт
	Результат = Новый Массив;
КонецПроцедуры

// Будет вызвана после полного обхода AST.
// Возвращает текстовый результат работы плагина, если он есть.
// Плагины, которые регистрируют ошибки и/или замены, могут вернуть Неопределено.
Функция Закрыть() Экспорт
	Возврат СтрСоединить(Результат);
КонецФункции

// Возвращает список процедур-подписок, которые будут вызываться визитером.
// Состав возможных подписок можно посмотреть в исходнике парсера в функции Подписки().
// Имена большинства подписок образуются добавлением префикса Посетить/Покинуть к имени типа узла.
// Справка по типам узлов находится по этому адресу: https://oscript-library.github.io/osparser/
Функция Подписки() Экспорт
	Перем Подписки;
	Подписки = Новый Массив;
	Подписки.Добавить("ПосетитьОператорПрисваивания");
	Подписки.Добавить("ПокинутьОператорПрисваивания");
	Возврат Подписки;
КонецФункции

#Область РеализацияПодписок

// Описание структуры узла `ОператорПрисваивания`: https://oscript-library.github.io/osparser/#ОператорПрисваивания

// Данная процедура будет вызвана при посещении узла AST перед посещением подчиненных ему узлов.
// Вызов подписок с префиксом `Посетить` отражает рекурсивный спуск визитера по AST.
// Сначала вызывается подписка на родительский узел, потом на этот, потом на подчиненный и так далее.
Процедура ПосетитьОператорПрисваивания(ОператорПрисваивания) Экспорт
	// ...
КонецПроцедуры

// Данная процедура будет вызвана при посещении узла AST после посещения подчиненных ему узлов.
// Вызов подписок с префиксом `Покинуть` отражает рекурсивный подъем визитера по AST.
// Сначала вызывается подписка на подчиненный узел, потом на этот, потом на родительский и так далее.
Процедура ПокинутьОператорПрисваивания(ОператорПрисваивания) Экспорт
	// ...
КонецПроцедуры

#КонецОбласти

</pre>

</pre>
<h1 id='ПолныйШаблон'>Полный шаблон плагина</h1>
<pre>
Перем Типы;
Перем Токены;
Перем Исходник;
Перем ТаблицаТокенов;
Перем ТаблицаОшибок;
Перем ТаблицаЗамен;
Перем Стек;
Перем Счетчики;
Перем Директивы;
Перем Аннотации;
Перем СимволыПрепроцессора;

Перем Результат;

Процедура Открыть(Парсер, Параметры) Экспорт
	
	Типы = Парсер.Типы();
	Токены = Парсер.Токены();
	Исходник = Парсер.Исходник();
	ТаблицаТокенов = Парсер.ТаблицаТокенов();
	ТаблицаОшибок = Парсер.ТаблицаОшибок();
	ТаблицаЗамен = Парсер.ТаблицаЗамен();
	Стек = Парсер.Стек();
	Счетчики = Парсер.Счетчики();
	Директивы = Парсер.Директивы();
	Аннотации = Парсер.Аннотации();
	СимволыПрепроцессора = Парсер.СимволыПрепроцессора();
	
	Результат = Новый Массив;
	
КонецПроцедуры

Функция Закрыть() Экспорт
	// ...
	Возврат СтрСоединить(Результат);
КонецФункции

Функция Подписки() Экспорт
	Перем Подписки;
	Подписки = Новый Массив;
	Подписки.Добавить("ПосетитьОператорПрисваивания");
	//Подписки.Добавить("ПокинутьОператорПрисваивания");
	Возврат Подписки;
КонецФункции

#Область РеализацияПодписок

Процедура ПосетитьОператорПрисваивания(ОператорПрисваивания) Экспорт
	Ошибка("Ошибка в операторе присваивания", ОператорПрисваивания.Начало, ОператорПрисваивания.Конец);
КонецПроцедуры // ПосетитьОператорПрисваивания()

//Процедура ПокинутьОператорПрисваивания(ОператорПрисваивания) Экспорт
//
//КонецПроцедуры // ПокинутьОператорПрисваивания()

#КонецОбласти

Процедура Ошибка(Текст, Начало, Конец = Неопределено, ЕстьЗамена = Ложь)
	Ошибка = ТаблицаОшибок.Добавить();
	Ошибка.Источник = "ИмяЭтогоПлагина";
	Ошибка.Текст = Текст;
	Ошибка.ПозицияНачала = Начало.Позиция;
	Ошибка.НомерСтрокиНачала = Начало.НомерСтроки;
	Ошибка.НомерКолонкиНачала = Начало.НомерКолонки;
	Если Конец = Неопределено Или Конец = Начало Тогда
		Ошибка.ПозицияКонца = Начало.Позиция + Начало.Длина;
		Ошибка.НомерСтрокиКонца = Начало.НомерСтроки;
		Ошибка.НомерКолонкиКонца = Начало.НомерКолонки + Начало.Длина;
	Иначе
		Ошибка.ПозицияКонца = Конец.Позиция + Конец.Длина;
		Ошибка.НомерСтрокиКонца = Конец.НомерСтроки;
		Ошибка.НомерКолонкиКонца = Конец.НомерКолонки + Конец.Длина;
	КонецЕсли;
	Ошибка.ЕстьЗамена = ЕстьЗамена;
КонецПроцедуры

Процедура Замена(Текст, Начало, Конец = Неопределено)
	НоваяЗамена = ТаблицаЗамен.Добавить();
	НоваяЗамена.Источник = "ИмяЭтогоПлагина";
	НоваяЗамена.Текст = Текст;
	НоваяЗамена.Позиция = Начало.Позиция;
	Если Конец = Неопределено Тогда
		НоваяЗамена.Длина = Начало.Длина;
	Иначе
		НоваяЗамена.Длина = Конец.Позиция + Конец.Длина - Начало.Позиция;
	КонецЕсли;
КонецПроцедуры

Процедура Вставка(Текст, Позиция)
	НоваяЗамена = ТаблицаЗамен.Добавить();
	НоваяЗамена.Источник = "ИмяЭтогоПлагина";
	НоваяЗамена.Текст = Текст;
	НоваяЗамена.Позиция = Позиция;
	НоваяЗамена.Длина = 0;
КонецПроцедуры

</pre>
	<h1 id='Таблицы'>Таблицы</h1>
	<h3 id='ТаблицаТокенов'>ТаблицаТокенов<a class='permalink' href='#ТаблицаТокенов'>¶</a></h3>
	<ul>
	    <p>
		<i> Таблица значений, которая хранит подробную информацию о всех токенах. </i><br>
		<i> Каждый узел AST имеет поля Начало и Конец, которые содержат строки из этой таблицы. </i><br>
		<i> С помощью обращения к таблице по индексу можно получить доступ к любому токену. </i><br>
		<i> Комментарии при необходимости тоже извлекаются по данным этой таблицы. </i><br>
		<i> Таблицу можно получить вызовом Парсер.ТаблицаТокенов() </i><br>
		</p>
	    <li><strong>Индекс</strong>: число</li>
		<li><strong>Токен</strong>: строка (один из <a href='#Токены'>#Токены</a>)</li>
		<li><strong>НомерСтроки</strong>: число</li>
		<li><strong>НомерКолонки</strong>: число</li>
		<li><strong>Позиция</strong>: число</li>
		<li><strong>Длина</strong>: число</li>
	</ul>

	<h3 id='ТаблицаОшибок'>ТаблицаОшибок<a class='permalink' href='#ТаблицаОшибок'>¶</a></h3>
	<ul>
	    <p>
		<i> Таблица значений, которая хранит ошибки собранные парсером и плагинами. </i><br>
		<i> Плагины могут получить таблицу в методе Открыть() и регистрировать в ней ошибки в процессе своей работы. </i><br>
		<i> Таблицу можно получить вызовом Парсер.ТаблицаОшибок() </i><br>
		<i> Обязательны к заполнению только первые 4 поля. Поле Код плагины не должны заполнять. </i><br>
		<i> Если плагин регистрирует ошибку и замену ее исправляющую, то желательно установить ЕстьЗамена = Истина </i><br>
		</p>
	    <li><strong>Источник</strong>: строка</li>
		<li><strong>Текст</strong>: строка</li>
		<li><strong>ПозицияНачала</strong>: число</li>
		<li><strong>ПозицияКонца</strong>: число</li>
		<li><strong>ЕстьЗамена</strong>: булево</li>
		<li><strong>Код</strong>: число</li>
		<li><strong>НомерСтрокиНачала</strong>: число</li>
		<li><strong>НомерКолонкиНачала</strong>: число</li>
		<li><strong>НомерСтрокиКонца</strong>: число</li>
		<li><strong>НомерКолонкиКонца</strong>: число</li>
		<li><strong>МинутНаИсправление</strong>: число</li>
		<li><strong>Серьезность</strong>: строка</li>
		<li><strong>Приоритет</strong>: число</li>
		<li><strong>Правило</strong>: строка</li>
		<li><strong>Тип</strong>: строка</li>
	</ul>

	<h3 id='ТаблицаЗамен'>ТаблицаЗамен<a class='permalink' href='#ТаблицаЗамен'>¶</a></h3>
	<ul>
	    <p>
		<i> Таблица значений, которая хранит замены, регистрируемые плагинами. </i><br>
		<i> Замена - это операция, аналогичная выделению участка текста и вставки фрагмента из буфера обмена. </i><br>
		<i> Позиция и Длина указывают что выделить, а Текст - это вставляемый фрагмент. </i><br>
		<i> Плагины могут получить таблицу в методе Открыть() и регистрировать в ней замены фрагментов исходника. </i><br>
		<i> Фактические операции замены по таблице могут быть выполнены вызовом Парсер.ВыполнитьЗамены() </i><br>
		<i> Таблицу можно получить вызовом Парсер.ТаблицаЗамен() </i><br>
		</p>
	    <li><strong>Источник</strong>: число</li>
		<li><strong>Текст</strong>: строка</li>
		<li><strong>Позиция</strong>: число</li>
		<li><strong>Длина</strong>: число</li>
	</ul>
	<h1 id='АСД'>Абстрактное синтаксическое дерево</h1>
	<h3 id='Модуль'>Модуль<a class='permalink' href='#Модуль'>¶</a></h3>
	<ul>
		<p>
		<i> Корень AST. Узел хранит информацию о модуле в целом.</i><br>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.Модуль</li>
		<li><strong>Объявления</strong>: массив (один из <a href='#Объявления'>Объявления</a>)</li>
		<li><strong>Переменные</strong>: массив (<a href='#ОбъявлениеПеременнойМодуля'>ОбъявлениеПеременнойМодуля</a>, <a href='#ОбъявлениеАвтоПеременной'>ОбъявлениеАвтоПеременной</a>)</li>
		<li><strong>Операторы</strong>: массив (один из <a href='#Операторы'>Операторы</a>)</li>
		<li><strong>Интерфейс</strong>: массив (<a href='#ЭлементОкружения'>ЭлементОкружения</a>)</li>
	</ul>
	<h3 id='ЭлементОкружения'>ЭлементОкружения<a class='permalink' href='#ЭлементОкружения'>¶</a></h3>
	<ul>
		<p>
		<i> Узел хранит информацию об объекте области видимости.</i><br>
		<i> Поле Объявление хранит объявление данного объекта (неопределено = объявление не обнаружено).</i><br>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ЭлементОкружения</li>
		<li><strong>Имя</strong>: строка</li>
		<li><strong>Объявление</strong>: неопределено, структура (один из <a href='#Объявления'>Объявления</a>)</li>
	</ul>
	<h2 id='Объявления'>Объявления</h2>
	<h3 id='ОбъявлениеДирективы'>ОбъявлениеДирективы<a class='permalink' href='#ОбъявлениеДирективы'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию об объявлении директивы.</i><br>
		<i> Пример:</i><br>
 <pre>
 &НаКлиенте</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОбъявлениеДирективы</li>
		<li><strong>Директива</strong>: строка (один из <a href='#Директивы'>Директивы</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОбъявлениеАннотации'>ОбъявлениеАннотации<a class='permalink' href='#ОбъявлениеАннотации'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию об объявлении аннотации.</i><br>
		<i> Пример:</i><br>
 <pre>
 &Перед("ЗаполнитьТовары")</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОбъявлениеАннотации</li>
		<li><strong>Аннотация</strong>: строка (один из <a href='#Аннотации'>Аннотации</a>)</li>
		<li><strong>ИмяМетода</strong>: строка</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОбъявлениеСпискаПеременныхМодуля'>ОбъявлениеСпискаПеременныхМодуля<a class='permalink' href='#ОбъявлениеСпискаПеременныхМодуля'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию об инструкции объявления переменных уровня модуля.</i><br>
		<i> Пример:</i><br>
 <pre>
 &НаКлиенте            // поле "Директивы"
 Перем П1 Экспорт, П2; // поле "Объявления"</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОбъявлениеСпискаПеременныхМодуля</li>
		<li><strong>Директивы</strong>: массив (<a href='#ОбъявлениеДирективы'>ОбъявлениеДирективы</a>)</li>
		<li><strong>Объявления</strong>: массив (<a href='#ОбъявлениеПеременнойМодуля'>ОбъявлениеПеременнойМодуля</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОбъявлениеПеременнойМодуля'>ОбъявлениеПеременнойМодуля<a class='permalink' href='#ОбъявлениеПеременнойМодуля'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию об объявлении переменной уровня модуля.</i><br>
		<i> Пример:</i><br>
		<i> Объявления переменных заключены в скобки {...}</i><br>
 <pre>
 &НаКлиенте
 Перем {П1 Экспорт}, {П2};</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОбъявлениеПеременнойМодуля</li>
		<li><strong>Имя</strong>: строка</li>
		<li><strong>Директивы</strong>: массив (<a href='#ОбъявлениеДирективы'>ОбъявлениеДирективы</a>)</li>
		<li><strong>Экспорт</strong>: булево</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОбъявлениеСпискаЛокальныхПеременных'>ОбъявлениеСпискаЛокальныхПеременных<a class='permalink' href='#ОбъявлениеСпискаЛокальныхПеременных'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию об инструкции объявления переменных уровня метода.</i><br>
		<i> Пример:</i><br>
 <pre>
 Перем П1, П2; // поле "Объявления"</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОбъявлениеСпискаЛокальныхПеременных</li>
		<li><strong>Объявления</strong>: массив (<a href='#ОбъявлениеЛокальнойПеременной'>ОбъявлениеЛокальнойПеременной</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОбъявлениеЛокальнойПеременной'>ОбъявлениеЛокальнойПеременной<a class='permalink' href='#ОбъявлениеЛокальнойПеременной'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию об объявлении локальной переменной.</i><br>
		<i> Пример:</i><br>
		<i> Объявления переменных заключены в скобки {...}</i><br>
 <pre>
 Перем {П1}, {П2};</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОбъявлениеЛокальнойПеременной</li>
		<li><strong>Имя</strong>: строка</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОбъявлениеАвтоПеременной'>ОбъявлениеАвтоПеременной<a class='permalink' href='#ОбъявлениеАвтоПеременной'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию об объявлении авто-переменной.</i><br>
		<i> Пример:</i><br>
		<i> Объявления переменных заключены в скобки {...}</i><br>
 <pre>
 {Макс} = 0;
 Для {Индекс} = 0 По Массив.ВГраница() Цикл
	{Структура} = Массив[Индекс];
 	Для Каждого {Элемент} Из Структура Цикл
		Если Макс < Элемент.Значение Тогда
 			Макс = Элемент.Значение;
 		КонецЕсли;
 	КонецЦикла;
 КонецЦикла</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОбъявлениеАвтоПеременной</li>
		<li><strong>Имя</strong>: строка</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОбъявлениеПараметра'>ОбъявлениеПараметра<a class='permalink' href='#ОбъявлениеПараметра'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию об объявлении параметра.</i><br>
		<i> Пример:</i><br>
		<i> Объявления параметров заключены в скобки {...}</i><br>
 <pre>
 Процедура Тест({П1}, {Знач П2 = Неопределено})</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОбъявлениеПараметра</li>
		<li><strong>Имя</strong>: строка</li>
		<li><strong>ПоЗначению</strong>: булево</li>
		<li><strong>Значение</strong>: неопределено, структура (<a href='#ВыражениеУнарное'>ВыражениеУнарное</a>, <a href='#ВыражениеЛитерал'>ВыражениеЛитерал</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОбъявлениеМетода'>ОбъявлениеМетода<a class='permalink' href='#ОбъявлениеМетода'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию об объявлении метода.</i><br>
		<i> Сигнатура метода хранится в поле Сигнатура.</i><br>
		<i> Пример:</i><br>
 <pre>
 &НаКлиенте
 Функция Тест() Экспорт
     Перем П1, П2; // поле "Объявления" хранит объявления списков переменных.
                   // каждый элемент объявления (например П2) добавляется в поле "Переменные".
     П1 = 2;       // операторы собираются в поле Операторы
     П3 = П1 + 2;  // Авто-переменные (П2) добавляются в поле "Переменные".
 КонецФункции</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОбъявлениеМетода</li>
		<li><strong>Сигнатура</strong>: структура (<a href='#ОбъявлениеСигнатурыПроцедуры'>ОбъявлениеСигнатурыПроцедуры</a>, <a href='#ОбъявлениеСигнатурыФункции'>ОбъявлениеСигнатурыФункции</a>)</li>
		<li><strong>Переменные</strong>: массив (<a href='#ОбъявлениеЛокальнойПеременной'>ОбъявлениеЛокальнойПеременной</a>, <a href='#ОбъявлениеАвтоПеременной'>ОбъявлениеАвтоПеременной</a>)</li>
		<li><strong>Объявления</strong>: массив (<a href='#ОбъявлениеСпискаЛокальныхПеременных'>ОбъявлениеСпискаЛокальныхПеременных</a>)</li>
		<li><strong>Операторы</strong>: массив (один из <a href='#Операторы'>Операторы</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОбъявлениеСигнатурыПроцедуры'>ОбъявлениеСигнатурыПроцедуры<a class='permalink' href='#ОбъявлениеСигнатурыПроцедуры'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию о сигнатуре объявления процедуры.</i><br>
		<i> Пример:</i><br>
 <pre>
 &НаКлиенте
 Процедура Тест(П1, П2) Экспорт</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОбъявлениеСигнатурыПроцедуры</li>
		<li><strong>Имя</strong>: строка</li>
		<li><strong>Директивы</strong>: массив (<a href='#ОбъявлениеДирективы'>ОбъявлениеДирективы</a>)</li>
		<li><strong>Аннотации</strong>: массив (<a href='#ОбъявлениеАннотации'>ОбъявлениеАннотации</a>)</li>
		<li><strong>Параметры</strong>: массив (<a href='#ОбъявлениеПараметра'>ОбъявлениеПараметра</a>)</li>
		<li><strong>Экспорт</strong>: булево</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОбъявлениеСигнатурыФункции'>ОбъявлениеСигнатурыФункции<a class='permalink' href='#ОбъявлениеСигнатурыФункции'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию о сигнатуре объявления функции.</i><br>
		<i> Пример:</i><br>
 <pre>
 &НаКлиенте
 Функция Тест(П1, П2) Экспорт</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОбъявлениеСигнатурыФункции</li>
		<li><strong>Имя</strong>: строка</li>
		<li><strong>Директивы</strong>: массив (<a href='#ОбъявлениеДирективы'>ОбъявлениеДирективы</a>)</li>
		<li><strong>Аннотации</strong>: массив (<a href='#ОбъявлениеАннотации'>ОбъявлениеАннотации</a>)</li>
		<li><strong>Параметры</strong>: массив (<a href='#ОбъявлениеПараметра'>ОбъявлениеПараметра</a>)</li>
		<li><strong>Экспорт</strong>: булево</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОбъявлениеГлобальногоОбъекта'>ОбъявлениеГлобальногоОбъекта<a class='permalink' href='#ОбъявлениеГлобальногоОбъекта'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию о глобальном объекте.</i><br>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОбъявлениеГлобальногоОбъекта</li>
		<li><strong>Имя</strong>: строка</li>
		<li><strong>Доступность</strong>: структура (<a href='#Доступность'>Доступность</a>)</li>
	</ul>
	<h3 id='ОбъявлениеГлобальногоМетода'>ОбъявлениеГлобальногоМетода<a class='permalink' href='#ОбъявлениеГлобальногоМетода'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию о глобальном методе.</i><br>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОбъявлениеГлобальногоМетода</li>
		<li><strong>Имя</strong>: строка</li>
		<li><strong>Функция</strong>: булево</li>
		<li><strong>Параметры</strong>: структура</li>
		<li><strong>Доступность</strong>: структура (<a href='#Доступность'>Доступность</a>)</li>
	</ul>
	<h2 id='Выражения'>Выражения</h2>
	<h3 id='ВыражениеЛитерал'>ВыражениеЛитерал<a class='permalink' href='#ВыражениеЛитерал'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию о литерале примитивного типа.</i><br>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ВыражениеЛитерал</li>
		<li><strong>Вид</strong>: строка (один из <a href='#Токены'>Токены</a>)</li>
		<li><strong>Значение</strong>: неопределено, строка, число, булево, дата, null</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ВыражениеПоле'>ВыражениеПоле<a class='permalink' href='#ВыражениеПоле'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию об обращении к полю объекта через точку.</i><br>
		<i> В поле Имя содержится имя поля.</i><br>
		<i> В поле Аргументы содержатся аргументы вызова (если это вызов).</i><br>
		<i> Пример:</i><br>
 <pre>
 // обращения через точку заключены в скобки {...}
 Значение = Объект{.Поле}
 Значение = Объект{.Добавить(П1, П2)}</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ВыражениеПоле</li>
		<li><strong>Имя</strong>: строка</li>
		<li><strong>Аргументы</strong>: неопределено, массив (неопределено, один из <a href='#Выражения'>Выражения</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ВыражениеИндекс'>ВыражениеИндекс<a class='permalink' href='#ВыражениеИндекс'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию об обращении к элементу объекта по индексу.</i><br>
		<i> Пример:</i><br>
 <pre>
 // обращение по индексу заключено в скобки {...}
 Значение = Объект{[Ключ]}</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ВыражениеИндекс</li>
		<li><strong>Выражение</strong>: структура (один из <a href='#Выражения'>Выражения</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ВыражениеИдентификатор'>ВыражениеИдентификатор<a class='permalink' href='#ВыражениеИдентификатор'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию об обращении к идентификатору.</i><br>
		<i> В поле Голова содержится объект области видимости соответствующий идентификатору.</i><br>
		<i> В поле Хвост содержится последовательность обращений через точку и по индексу.</i><br>
		<i> В поле Аргументы содержатся аргументы вызова (если это вызов).</i><br>
		<i> Пример:</i><br>
 <pre>
 // идентификатор заключен в скобки {...}
 // поле "Голова" будет содержать объект переменной "Запрос";
 // поле "Хвост" будет содержать три обращения;
 // поле "Аргументы" будет равно Неопределено, т.к. обращение к "Запрос" не является вызовом.
 Возврат {Запрос.Выполнить().Выгрузить()[0]};</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ВыражениеИдентификатор</li>
		<li><strong>Голова</strong>: структура (<a href='#ЭлементОкружения'>ЭлементОкружения</a>)</li>
		<li><strong>Хвост</strong>: массив (<a href='#ВыражениеПоле'>ВыражениеПоле</a>, <a href='#ВыражениеИндекс'>ВыражениеИндекс</a>)</li>
		<li><strong>Аргументы</strong>: неопределено, массив (неопределено, один из <a href='#Выражения'>Выражения</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ВыражениеУнарное'>ВыражениеУнарное<a class='permalink' href='#ВыражениеУнарное'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит унарное выражение.</i><br>
		<i> Пример:</i><br>
 <pre>
 // унарные выражения заключены в скобки {...}
 // поле "Операция.Токен" равно либо Токены.ЗнакСложения, либо Токены.ЗнакВычитания
 // поле "Операнд" хранит операнд-выражение
 Значение = {-Сумма} * 2;
 Значение = {+Сумма};
 Значение = {-(Сумма1 + Сумма2)} / 2;</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ВыражениеУнарное</li>
		<li><strong>Операция</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Операнд</strong>: структура (один из <a href='#Выражения'>Выражения</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ВыражениеБинарное'>ВыражениеБинарное<a class='permalink' href='#ВыражениеБинарное'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит бинарное выражение.</i><br>
		<i> Пример:</i><br>
 <pre>
 // бинарные выражения заключены в скобки {...}
 // поле "Операция.Токен" равно одному из допустимых операторов:
 // - логических (кроме "Не")
 // - реляционных
 // - арифметических
 // поля "ЛевыйОперанд" и "ПравыйОперанд" содержат операнды-выражения
 Если {Не Отмена И Продолжить} Тогда
     Значение = {Сумма1 + {Сумма2 * Коэффициент}};
 КонецЕсли;</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ВыражениеБинарное</li>
		<li><strong>ЛевыйОперанд</strong>: структура (один из <a href='#Выражения'>Выражения</a>)</li>
		<li><strong>Операция</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>ПравыйОперанд</strong>: структура (один из <a href='#Выражения'>Выражения</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ВыражениеНовый'>ВыражениеНовый<a class='permalink' href='#ВыражениеНовый'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит выражение "Новый".</i><br>
		<i> Для совместимости с OneScript поддерживается	</i><br>
		<i> обращение к конструктору через точку (поле Хвост)</i><br>
		<i> Пример:</i><br>
 <pre>
 // выражения "Новый" заключены в скобки {...}
 // в этом варианте поле "Имя" хранит имя типа "Массив",
 // а поле "Аргументы" хранит массив из одного выражения
 Параметры = {Новый Массив(1)};
 Параметры[0] = 10;
 // в этом варианте поле "Имя" равно Неопределено,
 // а поле "Аргументы" хранит массив из двух выражений
 Массив = {Новый (Тип("Массив"), Параметры)};</pre>
		<i> Инвариант: если (ВыражениеНовый.Имя = Неопределено) то (0 < ВыражениеНовый.Аргументы.Количество() <= 2)</i><br>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ВыражениеНовый</li>
		<li><strong>Имя</strong>: неопределено, строка</li>
		<li><strong>Аргументы</strong>: массив (один из <a href='#Выражения'>Выражения</a>)</li>
		<li><strong>Хвост</strong>: массив (<a href='#ВыражениеПоле'>ВыражениеПоле</a>, <a href='#ВыражениеИндекс'>ВыражениеИндекс</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ВыражениеТернарное'>ВыражениеТернарное<a class='permalink' href='#ВыражениеТернарное'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит тернарное выражение "?(,,)".</i><br>
		<i> Пример:</i><br>
 <pre>
 Значение = ?(Ложь,   // поле "Выражение"
     Неопределено,    // поле "Тогда"
     Новый Массив     // поле "Иначе"
 ).Количество();      // поле "Хвост"</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ВыражениеТернарное</li>
		<li><strong>Выражение</strong>: структура (один из <a href='#Выражения'>Выражения</a>)</li>
		<li><strong>Тогда</strong>: структура (один из <a href='#Выражения'>Выражения</a>)</li>
		<li><strong>Иначе</strong>: структура (один из <a href='#Выражения'>Выражения</a>)</li>
		<li><strong>Хвост</strong>: массив (<a href='#ВыражениеПоле'>ВыражениеПоле</a>, <a href='#ВыражениеИндекс'>ВыражениеИндекс</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ВыражениеСкобочное'>ВыражениеСкобочное<a class='permalink' href='#ВыражениеСкобочное'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит скобочное выражение.</i><br>
		<i> Пример:</i><br>
 <pre>
 // скобочное выражение заключено в скобки {...}
 Сумма = {(Сумма1 + Сумма2)} * Количество;</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ВыражениеСкобочное</li>
		<li><strong>Выражение</strong>: структура (один из <a href='#Выражения'>Выражения</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ВыражениеНе'>ВыражениеНе<a class='permalink' href='#ВыражениеНе'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит выражение, к которому применено логическое отрицание "Не".</i><br>
		<i> Пример:</i><br>
 <pre>
 // выражение-отрицание заключено в скобки {...}
 НеРавны = {Не Сумма1 = Сумма2};</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ВыражениеНе</li>
		<li><strong>Выражение</strong>: структура (один из <a href='#Выражения'>Выражения</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ВыражениеСтроковое'>ВыражениеСтроковое<a class='permalink' href='#ВыражениеСтроковое'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит строковое выражение.</i><br>
		<i> Поле "Элементы" хранит упорядоченный список частей строки.</i><br>
		<i> Пример:</i><br>
 <pre>
 Строка1 = "Часть1" "Часть2"; // эта строка состоит из двух частей типа Типы.Строка
 Строка2 =                    // эта строка состоит из пяти частей типа:
 "Начало строки               // Типы.НачалоСтроки
 | продолжение строки         // Типы.ПродолжениеСтроки
 | еще продолжение строки     // Типы.ПродолжениеСтроки
 | окончание строки"          // Типы.ОкончаниеСтроки
 "еще часть";                 // Типы.Строка</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ВыражениеСтроковое</li>
		<li><strong>Элементы</strong>: массив (<a href='#ВыражениеЛитерал'>ВыражениеЛитерал</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h2 id='Операторы'>Операторы</h2>
	<h3 id='ОператорПрисваивания'>ОператорПрисваивания<a class='permalink' href='#ОператорПрисваивания'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит оператор присваивания.</i><br>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОператорПрисваивания</li>
		<li><strong>ЛевыйОперанд</strong>: структура (<a href='#ВыражениеИдентификатор'>ВыражениеИдентификатор</a>)</li>
		<li><strong>ПравыйОперанд</strong>: структура (один из <a href='#Выражения'>Выражения</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОператорВозврат'>ОператорВозврат<a class='permalink' href='#ОператорВозврат'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит оператор "Возврат".</i><br>
		<i> Поле "Выражение" равно Неопределено если это возврат из процедуры.</i><br>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОператорВозврат</li>
		<li><strong>Выражение</strong>: неопределено, структура (один из <a href='#Выражения'>Выражения</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОператорПрервать'>ОператорПрервать<a class='permalink' href='#ОператорПрервать'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит оператор "Прервать".</i><br>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОператорПрервать</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОператорПродолжить'>ОператорПродолжить<a class='permalink' href='#ОператорПродолжить'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит оператор "Продолжить".</i><br>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОператорПродолжить</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОператорВызватьИсключение'>ОператорВызватьИсключение<a class='permalink' href='#ОператорВызватьИсключение'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит оператор "ВызватьИсключение".</i><br>
		<i> Поле "Выражение" равно Неопределено если это вариант оператора без выражения.</i><br>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОператорВызватьИсключение</li>
		<li><strong>Выражение</strong>: неопределено, структура (один из <a href='#Выражения'>Выражения</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОператорВыполнить'>ОператорВыполнить<a class='permalink' href='#ОператорВыполнить'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит оператор "Выполнить".</i><br>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОператорВыполнить</li>
		<li><strong>Выражение</strong>: структура (один из <a href='#Выражения'>Выражения</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОператорВызоваПроцедуры'>ОператорВызоваПроцедуры<a class='permalink' href='#ОператорВызоваПроцедуры'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит вызов процедуры или функции как процедуры.</i><br>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОператорВызоваПроцедуры</li>
		<li><strong>Идентификатор</strong>: структура (<a href='#ВыражениеИдентификатор'>ВыражениеИдентификатор</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОператорЕсли'>ОператорЕсли<a class='permalink' href='#ОператорЕсли'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит оператор "Если".</i><br>
		<i> Пример:</i><br>
 <pre>
 Если Сумма > 0 Тогда // поле "Выражение" хранит условие (выражение)
     // поле "Тогда" хранит операторы в этом блоке
 ИначеЕсли Сумма = 0 Тогда
     // поле-массив "ИначеЕсли" хранит последовательность блоков ИначеЕсли
 Иначе
     // поле "Иначе" хранит операторы в этом блоке
 КонецЕсли</pre>
		<i> Поля "ИначеЕсли" и "Иначе" равны Неопределено если</i><br>
		<i> соответствующие блоки отсутствуют в исходном коде.</i><br>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОператорЕсли</li>
		<li><strong>Выражение</strong>: структура (один из <a href='#Выражения'>Выражения</a>)</li>
		<li><strong>Тогда</strong>: массив (один из <a href='#Операторы'>Операторы</a>)</li>
		<li><strong>ИначеЕсли</strong>: неопределено, массив (<a href='#ОператорИначеЕсли'>ОператорИначеЕсли</a>)</li>
		<li><strong>Иначе</strong>: неопределено, структура (<a href='#ОператорИначе'>ОператорИначе</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОператорИначе'>ОператорИначе<a class='permalink' href='#ОператорИначе'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит блок "Иначе"</i><br>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОператорИначе</li>
		<li><strong>Операторы</strong>: массив (один из <a href='#Операторы'>Операторы</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОператорИначеЕсли'>ОператорИначеЕсли<a class='permalink' href='#ОператорИначеЕсли'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит блок "ИначеЕсли" оператора "Если".</i><br>
		<i> Пример:</i><br>
 <pre>
 ...
 ИначеЕсли Сумма < 0 Тогда // поле "Выражение" хранит условие (выражение)
     // поле "Тогда" хранит операторы в этом блоке
 ...</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОператорИначеЕсли</li>
		<li><strong>Выражение</strong>: структура (один из <a href='#Выражения'>Выражения</a>)</li>
		<li><strong>Тогда</strong>: массив (один из <a href='#Операторы'>Операторы</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОператорПока'>ОператорПока<a class='permalink' href='#ОператорПока'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит оператор цикла "Пока".</i><br>
		<i> Пример:</i><br>
 <pre>
 Пока Индекс > 0 Цикл // поле "Выражение" хранит условие (выражение)
     // поле "Операторы" хранит операторы в этом блоке
 КонецЦикла</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОператорПока</li>
		<li><strong>Выражение</strong>: структура (один из <a href='#Выражения'>Выражения</a>)</li>
		<li><strong>Операторы</strong>: массив (один из <a href='#Операторы'>Операторы</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОператорДля'>ОператорДля<a class='permalink' href='#ОператорДля'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит оператор цикла "Для".</i><br>
		<i> Пример:</i><br>
 <pre>
 Для Индекс = 0      // поля "Идентификатор" и "Старт" хранят переменную и выражение инициализации.
   По Длина - 1 Цикл // поле "Финиш" хранит выражение границы
     // поле "Операторы" хранит операторы в этом блоке
 КонецЦикла</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОператорДля</li>
		<li><strong>Идентификатор</strong>: структура (<a href='#ВыражениеИдентификатор'>ВыражениеИдентификатор</a>)</li>
		<li><strong>Старт</strong>: структура (один из <a href='#Выражения'>Выражения</a>)</li>
		<li><strong>Финиш</strong>: структура (один из <a href='#Выражения'>Выражения</a>)</li>
		<li><strong>Операторы</strong>: массив (один из <a href='#Операторы'>Операторы</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОператорДляКаждого'>ОператорДляКаждого<a class='permalink' href='#ОператорДляКаждого'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит оператор цикла "Для Каждого".</i><br>
		<i> Пример:</i><br>
 <pre>
 Для Каждого Элемент // поле "Идентификатор" хранит переменную.
   Из Список Цикл    // поле "Коллекция" хранит выражение коллекции.
     // поле "Операторы" хранит операторы в этом блоке
 КонецЦикла</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОператорДляКаждого</li>
		<li><strong>Идентификатор</strong>: структура (<a href='#ВыражениеИдентификатор'>ВыражениеИдентификатор</a>)</li>
		<li><strong>Коллекция</strong>: структура (один из <a href='#Выражения'>Выражения</a>)</li>
		<li><strong>Операторы</strong>: массив (один из <a href='#Операторы'>Операторы</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОператорПопытка'>ОператорПопытка<a class='permalink' href='#ОператорПопытка'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит оператор "Попытка"</i><br>
		<i> Пример:</i><br>
 <pre>
 Попытка
     // поле "Попытка" хранит операторы в этом блоке.
 Исключение
     // поле "Исключение" хранит операторы в этом блоке
 КонецПопытки</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОператорПопытка</li>
		<li><strong>Попытка</strong>: массив (один из <a href='#Операторы'>Операторы</a>)</li>
		<li><strong>Исключение</strong>: структура (<a href='#ОператорИсключение'>ОператорИсключение</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОператорИсключение'>ОператорИсключение<a class='permalink' href='#ОператорИсключение'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит блок "Исключение"</i><br>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОператорИсключение</li>
		<li><strong>Операторы</strong>: массив (один из <a href='#Операторы'>Операторы</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОператорПерейти'>ОператорПерейти<a class='permalink' href='#ОператорПерейти'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит оператор "Перейти"</i><br>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОператорПерейти</li>
		<li><strong>Метка</strong>: строка</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОператорМетка'>ОператорМетка<a class='permalink' href='#ОператорМетка'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит оператор метки.</i><br>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОператорМетка</li>
		<li><strong>Метка</strong>: строка</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОператорДобавитьОбработчик'>ОператорДобавитьОбработчик<a class='permalink' href='#ОператорДобавитьОбработчик'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит оператор "ДобавитьОбработчик".</i><br>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОператорДобавитьОбработчик</li>
		<li><strong>Событие</strong>: структура (<a href='#ВыражениеИдентификатор'>ВыражениеИдентификатор</a>)</li>
		<li><strong>ОбработчикСобытия</strong>: структура (<a href='#ВыражениеИдентификатор'>ВыражениеИдентификатор</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ОператорУдалитьОбработчик'>ОператорУдалитьОбработчик<a class='permalink' href='#ОператорУдалитьОбработчик'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит оператор "УдалитьОбработчик".</i><br>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ОператорУдалитьОбработчик</li>
		<li><strong>Событие</strong>: структура (<a href='#ВыражениеИдентификатор'>ВыражениеИдентификатор</a>)</li>
		<li><strong>ОбработчикСобытия</strong>: структура (<a href='#ВыражениеИдентификатор'>ВыражениеИдентификатор</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h2 id='ИнструкцииПрепроцессора'>ИнструкцииПрепроцессора</h2>
	<h3 id='ИнструкцияПрепроцессораЕсли'>ИнструкцияПрепроцессораЕсли<a class='permalink' href='#ИнструкцияПрепроцессораЕсли'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию об инструкции препроцессора #Если,</i><br>
		<i> Пример:</i><br>
 <pre>
 ...
 #Если Сервер Тогда // поле "Выражение" хранит условие (выражение)
 ...</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ИнструкцияПрепроцессораЕсли</li>
		<li><strong>Выражение</strong>: структура (один из <a href='#ВыражениеПрепроцессора'>ВыражениеПрепроцессора</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ИнструкцияПрепроцессораИначеЕсли'>ИнструкцияПрепроцессораИначеЕсли<a class='permalink' href='#ИнструкцияПрепроцессораИначеЕсли'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию об инструкции препроцессора #ИначеЕсли</i><br>
		<i> Пример:</i><br>
 <pre>
 ...
 #ИначеЕсли Клиент Тогда // поле "Выражение" хранит условие (выражение)
 ...</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ИнструкцияПрепроцессораИначеЕсли</li>
		<li><strong>Выражение</strong>: структура (один из <a href='#ВыражениеПрепроцессора'>ВыражениеПрепроцессора</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ИнструкцияПрепроцессораИначе'>ИнструкцияПрепроцессораИначе<a class='permalink' href='#ИнструкцияПрепроцессораИначе'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию об инструкции препроцессора #Иначе</i><br>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ИнструкцияПрепроцессораИначе</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ИнструкцияПрепроцессораКонецЕсли'>ИнструкцияПрепроцессораКонецЕсли<a class='permalink' href='#ИнструкцияПрепроцессораКонецЕсли'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию об инструкции препроцессора #КонецЕсли</i><br>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ИнструкцияПрепроцессораКонецЕсли</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ИнструкцияПрепроцессораОбласть'>ИнструкцияПрепроцессораОбласть<a class='permalink' href='#ИнструкцияПрепроцессораОбласть'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию об инструкции препроцессора #Обрасть,</i><br>
		<i> Пример:</i><br>
 <pre>
 ...
#Область Интерфейс   // поле "Имя" хранит имя области
 ...</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ИнструкцияПрепроцессораОбласть</li>
		<li><strong>Имя</strong>: строка</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ИнструкцияПрепроцессораКонецОбласти'>ИнструкцияПрепроцессораКонецОбласти<a class='permalink' href='#ИнструкцияПрепроцессораКонецОбласти'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию об инструкции препроцессора #КонецОбласти,</i><br>
		<i> Пример:</i><br>
 <pre>
 ...
#КонецОбласти
 ...</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ИнструкцияПрепроцессораКонецОбласти</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ИнструкцияПрепроцессораВставка'>ИнструкцияПрепроцессораВставка<a class='permalink' href='#ИнструкцияПрепроцессораВставка'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию об инструкции препроцессора #Вставка,</i><br>
		<i> Пример:</i><br>
 <pre>
 ...
#Вставка
 ...</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ИнструкцияПрепроцессораВставка</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ИнструкцияПрепроцессораКонецВставки'>ИнструкцияПрепроцессораКонецВставки<a class='permalink' href='#ИнструкцияПрепроцессораКонецВставки'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию об инструкции препроцессора #КонецВставки,</i><br>
		<i> Пример:</i><br>
 <pre>
 ...
#КонецВставки
 ...</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ИнструкцияПрепроцессораКонецВставки</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ИнструкцияПрепроцессораУдаление'>ИнструкцияПрепроцессораУдаление<a class='permalink' href='#ИнструкцияПрепроцессораУдаление'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию об инструкции препроцессора #Удаление,</i><br>
		<i> Пример:</i><br>
 <pre>
 ...
#Удаление
 ...</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ИнструкцияПрепроцессораУдаление</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ИнструкцияПрепроцессораКонецУдаления'>ИнструкцияПрепроцессораКонецУдаления<a class='permalink' href='#ИнструкцияПрепроцессораКонецУдаления'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию об инструкции препроцессора #КонецУдаления,</i><br>
		<i> Пример:</i><br>
 <pre>
 ...
#КонецУдаления
 ...</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ИнструкцияПрепроцессораКонецУдаления</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ИнструкцияПрепроцессораИспользовать'>ИнструкцияПрепроцессораИспользовать<a class='permalink' href='#ИнструкцияПрепроцессораИспользовать'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит информацию об инструкции препроцессора #Использовать,</i><br>
		<i> Пример:</i><br>
 <pre>
 ...
#Использовать osparser
 ...</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ИнструкцияПрепроцессораИспользовать</li>
		<li><strong>Путь</strong>: строка</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h2 id='ВыраженияПрепроцессора'>ВыраженияПрепроцессора</h2>
	<h3 id='ВыражениеПрепроцессораБинарное'>ВыражениеПрепроцессораБинарное<a class='permalink' href='#ВыражениеПрепроцессораБинарное'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит бинарное выражение препроцессора.</i><br>
		<i> Пример:</i><br>
 <pre>
 // бинарные выражения заключены в скобки {...}
 // поле "Операция.Токен" равно либо Токены.Или либо Токены.И:
 // поля "ЛевыйОперанд" и "ПравыйОперанд" содержат операнды-выражения препроцессора
 #Если {Сервер Или ВнешнееСоединение} Тогда
 ...</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ВыражениеПрепроцессораБинарное</li>
		<li><strong>ЛевыйОперанд</strong>: структура (один из <a href='#ВыражениеПрепроцессора'>ВыражениеПрепроцессора</a>)</li>
		<li><strong>Операция</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>ПравыйОперанд</strong>: структура (один из <a href='#ВыражениеПрепроцессора'>ВыражениеПрепроцессора</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ВыражениеПрепроцессораНе'>ВыражениеПрепроцессораНе<a class='permalink' href='#ВыражениеПрепроцессораНе'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит выражение препроцессора, к которому применено логическое отрицание "Не".</i><br>
		<i> Пример:</i><br>
 <pre>
 // выражение-отрицание заключено в скобки {...}
 #Если {Не ВебКлиент} Тогда
 ...</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ВыражениеПрепроцессораНе</li>
		<li><strong>Выражение</strong>: структура (один из <a href='#ВыражениеПрепроцессора'>ВыражениеПрепроцессора</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ВыражениеПрепроцессораСимвол'>ВыражениеПрепроцессораСимвол<a class='permalink' href='#ВыражениеПрепроцессораСимвол'>¶</a></h3>
	<ul>
		<p>
		<i> Узел хранит информацию о символе препроцессора.</i><br>
		<i> Поле Существует = Истина если такой символ существует.</i><br>
		<i> Пример:</i><br>
 <pre>
 // символ заключен в скобки {...}
 #Если {Сервер} Тогда</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ВыражениеПрепроцессораСимвол</li>
		<li><strong>Символ</strong>: строка (один из <a href='#PrepСимволs'>PrepСимволs</a>)</li>
		<li><strong>Существует</strong>: булево</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
	<h3 id='ВыражениеПрепроцессораСкобочное'>ВыражениеПрепроцессораСкобочное<a class='permalink' href='#ВыражениеПрепроцессораСкобочное'>¶</a></h3>
	<ul>
		<p>
		<i> Хранит скобочное выражение препроцессора.</i><br>
		<i> Пример:</i><br>
 <pre>
 // скобочное выражение заключено в скобки {...}
 #Если {(Сервер Или ВнешнееСоединение)} Тогда</pre>
		</p>
		<li><strong>Тип</strong>: строка (один из <a href='#Типы'>Типы</a>) = Типы.ВыражениеПрепроцессораСкобочное</li>
		<li><strong>Выражение</strong>: структура (один из <a href='#ВыражениеПрепроцессора'>ВыражениеПрепроцессора</a>)</li>
		<li><strong>Начало</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
		<li><strong>Конец</strong>: один из <a href='#ТаблицаТокенов'>ТаблицаТокенов</a></li>
	</ul>
<h2 id='Прочее'>Прочее</h2>
<h3 id='Доступность'>Доступность</h3>
<ul>
 <li><strong>Клиент</strong>: булево</li>
 <li><strong>ВнешнееСоединение</strong>: булево</li>
 <li><strong>МобильноеПриложение</strong>: булево</li>
 <li><strong>МобильныйКлиент</strong>: булево</li>
 <li><strong>МобильныйСервер</strong>: булево</li>
 <li><strong>Сервер</strong>: булево</li>
 <li><strong>ТолстыйКлиент</strong>: булево</li>
 <li><strong>ТонкийКлиент</strong>: булево</li>
 <li><strong>ВебКлиент</strong>: булево</li>
 <li><strong>Интеграция</strong>: булево</li>
</ul>
</body>
</html><h1 id='Перечисления'>Перечисления</h1><h2 id='Типы'>Типы</h2>
<ul><li><a href='#Модуль'>Модуль</a></li>
<li><a href='#ЭлементОкружения'>ЭлементОкружения</a></li>
<li><a href='#ОбъявлениеГлобальногоОбъекта'>ОбъявлениеГлобальногоОбъекта</a></li>
<li><a href='#ОбъявлениеГлобальногоМетода'>ОбъявлениеГлобальногоМетода</a></li>
<li><a href='#ОбъявлениеДирективы'>ОбъявлениеДирективы</a></li>
<li><a href='#ОбъявлениеАннотации'>ОбъявлениеАннотации</a></li>
<li><a href='#ОбъявлениеПеременнойМодуля'>ОбъявлениеПеременнойМодуля</a></li>
<li><a href='#ОбъявлениеСпискаПеременныхМодуля'>ОбъявлениеСпискаПеременныхМодуля</a></li>
<li><a href='#ОбъявлениеСпискаЛокальныхПеременных'>ОбъявлениеСпискаЛокальныхПеременных</a></li>
<li><a href='#ОбъявлениеЛокальнойПеременной'>ОбъявлениеЛокальнойПеременной</a></li>
<li><a href='#ОбъявлениеАвтоПеременной'>ОбъявлениеАвтоПеременной</a></li>
<li><a href='#ОбъявлениеПараметра'>ОбъявлениеПараметра</a></li>
<li><a href='#ОбъявлениеМетода'>ОбъявлениеМетода</a></li>
<li><a href='#ОбъявлениеСигнатурыПроцедуры'>ОбъявлениеСигнатурыПроцедуры</a></li>
<li><a href='#ОбъявлениеСигнатурыФункции'>ОбъявлениеСигнатурыФункции</a></li>
<li><a href='#ВыражениеЛитерал'>ВыражениеЛитерал</a></li>
<li><a href='#ВыражениеПоле'>ВыражениеПоле</a></li>
<li><a href='#ВыражениеИндекс'>ВыражениеИндекс</a></li>
<li><a href='#ВыражениеИдентификатор'>ВыражениеИдентификатор</a></li>
<li><a href='#ВыражениеУнарное'>ВыражениеУнарное</a></li>
<li><a href='#ВыражениеБинарное'>ВыражениеБинарное</a></li>
<li><a href='#ВыражениеНовый'>ВыражениеНовый</a></li>
<li><a href='#ВыражениеТернарное'>ВыражениеТернарное</a></li>
<li><a href='#ВыражениеСкобочное'>ВыражениеСкобочное</a></li>
<li><a href='#ВыражениеНе'>ВыражениеНе</a></li>
<li><a href='#ВыражениеСтроковое'>ВыражениеСтроковое</a></li>
<li><a href='#ОператорПрисваивания'>ОператорПрисваивания</a></li>
<li><a href='#ОператорВозврат'>ОператорВозврат</a></li>
<li><a href='#ОператорПрервать'>ОператорПрервать</a></li>
<li><a href='#ОператорПродолжить'>ОператорПродолжить</a></li>
<li><a href='#ОператорВызватьИсключение'>ОператорВызватьИсключение</a></li>
<li><a href='#ОператорВыполнить'>ОператорВыполнить</a></li>
<li><a href='#ОператорПока'>ОператорПока</a></li>
<li><a href='#ОператорДля'>ОператорДля</a></li>
<li><a href='#ОператорДляКаждого'>ОператорДляКаждого</a></li>
<li><a href='#ОператорПопытка'>ОператорПопытка</a></li>
<li><a href='#ОператорИсключение'>ОператорИсключение</a></li>
<li><a href='#ОператорПерейти'>ОператорПерейти</a></li>
<li><a href='#ОператорМетка'>ОператорМетка</a></li>
<li><a href='#ОператорВызоваПроцедуры'>ОператорВызоваПроцедуры</a></li>
<li><a href='#ОператорЕсли'>ОператорЕсли</a></li>
<li><a href='#ОператорИначеЕсли'>ОператорИначеЕсли</a></li>
<li><a href='#ОператорИначе'>ОператорИначе</a></li>
<li><a href='#ОператорДобавитьОбработчик'>ОператорДобавитьОбработчик</a></li>
<li><a href='#ОператорУдалитьОбработчик'>ОператорУдалитьОбработчик</a></li>
<li><a href='#ИнструкцияПрепроцессораЕсли'>ИнструкцияПрепроцессораЕсли</a></li>
<li><a href='#ИнструкцияПрепроцессораИначеЕсли'>ИнструкцияПрепроцессораИначеЕсли</a></li>
<li><a href='#ИнструкцияПрепроцессораИначе'>ИнструкцияПрепроцессораИначе</a></li>
<li><a href='#ИнструкцияПрепроцессораКонецЕсли'>ИнструкцияПрепроцессораКонецЕсли</a></li>
<li><a href='#ИнструкцияПрепроцессораОбласть'>ИнструкцияПрепроцессораОбласть</a></li>
<li><a href='#ИнструкцияПрепроцессораКонецОбласти'>ИнструкцияПрепроцессораКонецОбласти</a></li>
<li><a href='#ИнструкцияПрепроцессораВставка'>ИнструкцияПрепроцессораВставка</a></li>
<li><a href='#ИнструкцияПрепроцессораКонецВставки'>ИнструкцияПрепроцессораКонецВставки</a></li>
<li><a href='#ИнструкцияПрепроцессораУдаление'>ИнструкцияПрепроцессораУдаление</a></li>
<li><a href='#ИнструкцияПрепроцессораКонецУдаления'>ИнструкцияПрепроцессораКонецУдаления</a></li>
<li><a href='#ИнструкцияПрепроцессораИспользовать'>ИнструкцияПрепроцессораИспользовать</a></li>
<li><a href='#ВыражениеПрепроцессораБинарное'>ВыражениеПрепроцессораБинарное</a></li>
<li><a href='#ВыражениеПрепроцессораНе'>ВыражениеПрепроцессораНе</a></li>
<li><a href='#ВыражениеПрепроцессораСимвол'>ВыражениеПрепроцессораСимвол</a></li>
<li><a href='#ВыражениеПрепроцессораСкобочное'>ВыражениеПрепроцессораСкобочное</a></li>
</ul>
<h2 id='Директивы'>Директивы</h2>
<ul><li>НаКлиенте</li>
<li>НаСервере</li>
<li>НаСервереБезКонтекста</li>
<li>НаКлиентеНаСервереБезКонтекста</li>
<li>НаКлиентеНаСервере</li>
</ul>
<h2 id='Аннотации'>Аннотации</h2>
<ul><li>Перед</li>
<li>После</li>
<li>Вместо</li>
<li>ИзменениеИКонтроль</li>
</ul>
<h2 id='СимволыПрепроцессора'>СимволыПрепроцессора</h2>
<ul><li>Клиент</li>
<li>НаКлиенте</li>
<li>НаСервере</li>
<li>МобильноеПриложениеКлиент</li>
<li>МобильноеПриложениеСервер</li>
<li>ТолстыйКлиентОбычноеПриложение</li>
<li>ТолстыйКлиентУправляемоеПриложение</li>
<li>Сервер</li>
<li>ВнешнееСоединение</li>
<li>ТонкийКлиент</li>
<li>ВебКлиент</li>
</ul>
<h2 id='Токены'>Токены</h2>
<ul><li>Если</li>
<li>Тогда</li>
<li>ИначеЕсли</li>
<li>Иначе</li>
<li>КонецЕсли</li>
<li>Для</li>
<li>Каждого</li>
<li>Из</li>
<li>По</li>
<li>Пока</li>
<li>Цикл</li>
<li>КонецЦикла</li>
<li>Процедура</li>
<li>КонецПроцедуры</li>
<li>Функция</li>
<li>КонецФункции</li>
<li>Перем</li>
<li>Знач</li>
<li>Возврат</li>
<li>Продолжить</li>
<li>Прервать</li>
<li>И</li>
<li>Или</li>
<li>Не</li>
<li>ДобавитьОбработчик</li>
<li>УдалитьОбработчик</li>
<li>Попытка</li>
<li>Исключение</li>
<li>ВызватьИсключение</li>
<li>КонецПопытки</li>
<li>Новый</li>
<li>Выполнить</li>
<li>Экспорт</li>
<li>Перейти</li>
<li>Истина</li>
<li>Ложь</li>
<li>Неопределено</li>
<li>Null</li>
<li>Идентификатор</li>
<li>Число</li>
<li>Строка</li>
<li>ДатаВремя</li>
<li>НачалоСтроки</li>
<li>ПродолжениеСтроки</li>
<li>ОкончаниеСтроки</li>
<li>ЗнакРавно</li>
<li>ЗнакНеРавно</li>
<li>ЗнакМеньше</li>
<li>ЗнакБольше</li>
<li>ЗнакМеньшеИлиРавно</li>
<li>ЗнакБольшеИлиРавно</li>
<li>ЗнакСложения</li>
<li>ЗнакВычитания</li>
<li>ЗнакУмножения</li>
<li>ЗнакДеления</li>
<li>ЗнакОстатка</li>
<li>ЛеваяКруглаяСкобка</li>
<li>ПраваяКруглаяСкобка</li>
<li>ЛеваяКвадратнаяСкобка</li>
<li>ПраваяКвадратнаяСкобка</li>
<li>ЗнакВопроса</li>
<li>Запятая</li>
<li>Точка</li>
<li>Двоеточие</li>
<li>ТочкаСЗапятой</li>
<li>_Если</li>
<li>_ИначеЕсли</li>
<li>_Иначе</li>
<li>_КонецЕсли</li>
<li>_Область</li>
<li>_КонецОбласти</li>
<li>_Вставка</li>
<li>_КонецВставки</li>
<li>_Удаление</li>
<li>_КонецУдаления</li>
<li>_Использовать</li>
<li>Комментарий</li>
<li>Метка</li>
<li>Аннотация</li>
<li>Директива</li>
<li>НачалоТекста</li>
<li>КонецТекста</li>
</ul>
